import getDropdownOptionPropsDescrible from '../../utils/dropdown-option-props-desc';

export default {
    attributes: [
        {
            params: 'value/v-model',
            des: '绑定值',
            type: 'String | Number',
            values: '-',
            defaultVal: '',
        },
        {
            params: 'options',
            des: '控件选项的配置数据；选项选中时，组件内默认从选项数据内取 "value" 字段对应的值作为绑定值，取 "label" 字段对应的值作为展示；如果数据内不存在这两个字段名，则需要使用 optionProps 属性来指定',
            type: 'Array',
            values: '-',
            defaultVal: '-',
        },
        {
            params: 'option-props',
            des: '指定下拉选项配置的键/值所对应的字段编码，以及自定义下拉选项的dom；详情请查阅下表',
            type: 'Object',
            values: '-',
            defaultVal: '{ label: \'label\', value: \'value\', customHTML: null }',
            details: [
                {
                    title: '配置项【option-props】',
                    describes: [
                        '一般可用于配置了从后台接口获取数据且key、value字段不对应的情况；',
                    ],
                    configList: getDropdownOptionPropsDescrible('dropdown'),
                },
            ],
        },
        {
            params: 'split-button',
            des: '下拉触发元素是否呈现为按钮组',
            type: 'Boolean',
            values: 'true | false',
            defaultVal: 'false',
        },
        {
            params: 'size',
            des: '尺寸大小（仅对按钮组风格设置尺寸有效）',
            type: 'String',
            values: '"large" | "default" | "small"',
            defaultVal: '"default"',
        },
        {
            params: 'button-type',
            des: '菜单按钮类型，只在split-button为 true 的情况下有效',
            type: 'String',
            values: '\'primary\' | \'success\' | \'warning\' | \'danger\' | \'info\'',
            defaultVal: '\'primary\'',
        },
        {
            params: 'placement',
            des: '下拉选项弹出的位置',
            type: 'String',
            values: '\'top\' | \'top-start\' | \'top-end\' | \'bottom\' | \'bottom-start\' | \'bottom-end\'',
            defaultVal: '\'bottom\'',
        },
        {
            params: 'trigger',
            des: '触发下拉的行为',
            type: 'String',
            values: '\'hover\' | \'click\'',
            defaultVal: '\'click\'',
        },
        {
            params: 'popper-class',
            des: '选择器下拉菜单的自定义类名',
            type: 'String',
            values: '',
            defaultVal: '-',
        },
        {
            params: 'hide-on-click',
            des: '是否在点击菜单项后隐藏菜单',
            type: 'Boolean',
            values: 'true | false',
            defaultVal: 'true',
        },
        {
            params: 'disabled',
            des: '是否禁用',
            type: 'Boolean',
            values: 'true | false',
            defaultVal: 'false',
        },
        {
            params: 'placeholder',
            des: '占位提示，插槽存在内容时，该配置无效',
            type: 'String',
            values: '',
            defaultVal: '\'请选择\'',
        },
        {
            params: 'clearable',
            des: '是否展示清空图标，插槽存在内容或者组件样式为按钮组时，该配置无效',
            type: 'Boolean',
            values: 'true | false',
            defaultVal: 'false',
        },
        {
            params: 'teleported',
            des: '是否将下拉列表插入至 body 元素',
            type: 'Boolean',
            values: 'true | false',
            defaultVal: 'true',
        },
    ],
    events: [
        {
            name: 'change',
            des: '下拉选项的 change 事件',
            params: '(key, option)',
        },
        {
            name: 'click',
            des: 'split-button 为 true 时，点击左侧按钮的回调',
            params: '(option)',
        },
        {
            name: 'clear',
            des: '若配置允许清空，该事件表示点击清空按钮时抛出的事件',
            params: '-',
        },
    ],
    slots: [
        {
            name: '-',
            des: '默认插槽，替换展示内容',
            params: '-',
        },
    ],
    refs: [],
};
